package com.chris.design.pattern.samples.observer;

/**
 * 观察者模式 或者 pub/sub发布订阅模式。 主题内容变化 -》 观察者 跟着变化
 * 区分：推模式，拉模式
 * @author Chris
 */
public class ObserverAppMain {

    public static void main(String[] args) {
        AbstractSubject subject = new ConcreteSubject();
        ConcreteObserver observer = new ConcreteObserver();
        subject.attach(observer);
        subject.change("2333", PushOrPullEnum.pull);

        // jdk 提供的, 考虑的更完善，以及线程安全
        // 观察者对象
//        java.util.Observer
        // 被观察者对象
//        java.util.Observable
    }
}
